import java.util.Stack;

class MyQuequeUseStack {

    public Stack<Integer> stack1;  //构建一个栈
    public Stack<Integer> stack2;
    public MyQuequeUseStack(){
        stack1 = new Stack<>();
        stack2 = new Stack<>();
    }

    public void push(int x){  //入栈
        stack1.push(x);
    }

    public int pop(){  //将栈顶元素出栈并返回
        if (empty()){
            return -1;
        }
        if (!stack2.empty()){     //如果第二个栈不为空
            return stack2.pop();  //返回第二个栈的栈顶元素
        }
        while (!stack1.empty()){  //如果第一个栈不为空
            stack2.push(stack1.pop());  //将栈1出栈元素放进栈2里
        }
        return stack2.pop();
    }

    public int peek(){  //获取栈顶元素
        if (empty()){
            return -1;  //-1代表没找到，如果条件为true,说明栈为空;没找到则返回-1
        }
        if (!stack2.empty()){     //如果第二个栈不为空
            return stack2.peek();  //返回第二个栈的栈顶元素
        }
        while (!stack1.empty()){  //如果第一个栈不为空
            stack2.push(stack1.peek());  //将栈1出栈元素放进栈2里
        }
        return stack2.peek();
    }

    public boolean empty(){
        return stack1.empty() && stack2.empty();
    }
}
